// 封装axios
import axios from "axios";
import { Message, MessageBox } from "element-ui";
import store from "../store";
import router from "../router";

export function request(config) {
    const instance = axios.create({
        baseURL: "http://yinruifang.cn",
        timeout: 5000,
    });

    // 请求拦截
    /* 
        config: 请求成功执行的回调,如果有一个接口需要认证才能访问，就在这统一设置
        err: 请求失败执行的回调
    */
    instance.interceptors.request.use(
        (config) => {
            /* const token = window.localStorage.getItem("token");
      if (token) {
          config.headers.Authorization = 'token';
        } */
            config.headers.Authorization = "token";

            return config;
        },
        (err) => {}
    );

    // 响应拦截
    instance.interceptors.response.use(
        (res) => {
            const data = res.data ? res.data : res;
            if (data.status != 200) {
                if (data.status == 401) {
                    MessageBox.confirm("你已退出登录，是否停留？", "确认退出", {
                        confirmButtonText: "确定",
                        cancelButtonText: "取消",
                    })
                        .then(() => {
                            // 退出登录
                            store.dispatch("logoutAC");
                            // 刷新页面
                            router.go(0);
                        })
                        .catch(() => {
                            console.log("留在原页面");
                        });
                } else {
                    Message({
                        type: "error",
                        message: "请求错误",
                    });
                }
            }
            return data;
        },
        (err) => {
            return Promise.reject(err);
        }
    );

    return instance(config);
}
